import 'dart:io';

import 'package:black_movice/config/configs.dart';
import 'package:black_movice/routers.dart';
import 'package:black_movice/store/store.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';

// 确保 Flutter 框架初始化完成。
// 强制设备使用竖屏方向。
// 设置系统 UI 覆盖层的样式，包括状态栏和导航栏的颜色、亮度和图标亮度等。
// 对于 Android 设备，使用自定义的系统 UI 覆盖层样式，包括将状态栏设置为透明等。
// 启动应用程序，将 MyApp 作为根组件开始渲染应用程序的 UI。
void main() {
  //这个方法用于确保 Flutter 框架已经初始化。在某些情况下，
  //你需要在 runApp 之前执行一些操作，如配置平台设置、初始化服务或插件，
  //此时就需要调用 WidgetsFlutterBinding.ensureInitialized() 确保 Flutter 的绑定已经完成，为后续操作提供必要的基础。
  WidgetsFlutterBinding.ensureInitialized();
  // 强制竖屏，设置仅支持竖屏
  // SystemChrome.setPreferredOrientations(
  //   [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown],
  // );
  //定义系统ui样式，使状态栏和导航栏得图标和颜色变浅,设置成亮色模式
  // SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
  // if (Platform.isAndroid) {
  // 设置状态栏文字颜色
  SystemChrome.setSystemUIOverlayStyle(
    SystemUiOverlayStyle(
      statusBarIconBrightness: Brightness.dark, // 状态栏图标颜色为深色
      statusBarBrightness: Brightness.light, // 状态栏亮度为浅色
    ),
  );
  //   //定义一个SystemUiOverlayStyle
  //   // SystemUiOverlayStyle systemUiOverlayStyle = const SystemUiOverlayStyle(
  //   //   //将系统导航栏的颜色设置为白色。
  //   //   systemNavigationBarColor: Colors.green,
  //   //   //将系统导航栏的分隔线颜色设置为白色。
  //   //   systemNavigationBarDividerColor: Colors.red,
  //   //   //将系统导航栏图标变成浅色图标
  //   //   // systemNavigationBarIconBrightness: Brightness.light,
  //   //   //将状态栏的颜色设置为透明，使得状态栏下的内容可以显示出来，创造一种沉浸式的效果。
  //   //   statusBarColor: Colors.transparent,
  //   //   //状态栏的亮度设置为 Brightness.light，表示状态栏上的图标和文本将是浅色。
  //   //   // statusBarBrightness: Brightness.light,
  //   //   //状态栏图标的亮度设置为 Brightness.light，确保图标是浅色。
  //   //   // statusBarIconBrightness: Brightness.light,
  //   // );
  //   // SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
  // }
  Get.put(Store());
  //运行app，这是一个入口函数
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
      // 设计稿尺寸
      designSize: const Size(375, 812),

      ///是否根据宽度/高度中的最小值适配文字
      minTextAdapt: true,

      ///支持分屏尺寸
      splitScreenMode: true,

      // 构建函数
      builder: (context, child) {
        return GetMaterialApp(
          // 导航唯一键
          navigatorKey: Global.navigatorKey,
          // 初始化根路由路径
          initialRoute: Routers.root,
          // 路由列表
          getPages: Routers.routerList,
          debugShowCheckedModeBanner: false,
          title: '小黑影视',
          builder: EasyLoading.init(),
        );
      },
    );
  }
}
